package com.chenfan.mcn.model.dto;

import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;

import javax.validation.constraints.*;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * KOC红人-Excel导入DTO
 *
 * @author wulg
 * @date 2022-05-23
 **/
@Data
public class KocStarInputDTO implements Serializable {

    private static final long serialVersionUID = -1564258982326240457L;

    /**
     * 红人昵称
     */
    @Excel(name = "* 红人昵称", orderNum = "1")
    @NotBlank(message = "红人昵称必填")
    @Size(max = 10, message = "红人昵称长度不能超过{max}个字符")
    private String starNickname;

    /**
     * 真实姓名
     */
    @Excel(name = "* 真实姓名", orderNum = "2")
    @NotBlank(message = "真实姓名必填")
    @Size(max = 10, message = "真实姓名长度不能超过{max}个字符")
    private String starName;

    /**
     * 红人经纪人
     */
    @Excel(name = "* 红人经纪人", orderNum = "3")
    @NotBlank(message = "红人经纪人必填")
    private String starAgentName;


    /**
     * 参加项目
     */
    @Excel(name = "* 参加项目", orderNum = "4")
    @NotBlank(message = "参加项目必填")
    @Size(max = 20, message = "参加项目长度不能超过{max}个字符")
    private String kocpmName;

    /**
     * 执行金额
     */
    @Excel(name = "执行金额", orderNum = "5")
    @DecimalMin(value = "0.00")
    @Digits(integer = 20, fraction = 2, message = "执行金额-请录入大于等于0，最多含两位小数的数字")
    private BigDecimal excuteMoney;

    /**
     * 备注
     */
    @Excel(name = "备注", orderNum = "6")
    @Size(max = 200, message = "备注长度不能超过{max}个字符")
    private String remark;

    /**
     * 所在平台
     */
    @Excel(name = "* 所在平台", orderNum = "7")
    @NotBlank(message = "所在平台必填")
    private String platformName;

    /**
     * 打款类型（公司，个人，工作室）
     */
    @Excel(name = "* 打款类型", orderNum = "8")
    @NotBlank(message = "打款类型必填")
    @Pattern(regexp = "^(公司|个人|工作室)$", message = "打款类型仅能录入【公司】、【个人】或者【工作室】")
    private String studioPayment;

    /**
     * 收款户名
     */
    @Excel(name = "* 收款户名", orderNum = "9")
    @NotBlank(message = "收款户名必填")
    @Size(max = 10, message = "收款户名长度不能超过{max}个字符")
    private String accountName;

    /**
     * 收款卡号
     */
    @Excel(name = "* 收款卡号", orderNum = "10")
    @NotBlank(message = "收款卡号必填")
    @Size(max = 20, message = "收款卡号长度不能超过{max}个字符")
    private String accountNumber;

    /**
     * 开户行
     */
    @Excel(name = "* 开户行", orderNum = "11")
    @NotBlank(message = "开户行必填")
    @Size(max = 10, message = "开户行长度不能超过{max}个字符")
    private String accountBank;

    /**
     * 开户省
     */
    @Excel(name = "* 开户省", orderNum = "12")
    @NotBlank(message = "开户省必填")
    @Size(max = 10, message = "开户省长度不能超过{max}个字符")
    private String accountProvince;


    /**
     * 开户市
     */
    @Excel(name = "* 开户市", orderNum = "13")
    @NotBlank(message = "开户市必填")
    @Size(max = 20, message = "开户市长度不能超过{max}个字符")
    private String accountCity;

    /**
     * 开户支行
     */
    @Excel(name = "* 开户支行", orderNum = "14")
    @NotBlank(message = "开户支行必填")
    @Size(max = 20, message = "开户支行长度不能超过{max}个字符")
    private String accountBranchBank;

    /**
     * 收款账户身份证号
     */
    @Excel(name = "* 收款账户身份证号", orderNum = "15")
    @NotBlank(message = "收款账户身份证号必填")
    @Size(max = 18, message = "收款账户身份证号长度不能超过{max}个字符")
    private String accountIdCard;

    /**
     * 收款账户手机号
     */
    @NotBlank(message = "收款账户手机号必填")
    @Excel(name = "* 收款账户手机号", orderNum = "16")
    @Size(max = 11, message = "收款账户手机号长度不能超过{max}个字符")
    private String accountPhone;
}
